from django.http import HttpRequest
from django.shortcuts import render, redirect

# Create your views here.

from app01.usedao import UserDao
from app01.user import User, UserPage
from log.common import get_logger

v_log = get_logger('')
# 浏览器发生一个请求地址后，会交给该函数处理
def f_users(request,currentpage):
    # 初始化一个UserPage
    v_pageunit = 3
    v_current = currentpage
    v_userpage = UserPage(None, v_pageunit, None, v_current)


    # 获取数据库里数据，(返回数据为一个字典)
    # v_user_list=UserDao.f_select_user()


    #  获取数据库里数据   （返回是一个字典）
    v_userpage = UserDao.f_select_user_page(v_userpage)
    v_userpage = UserDao.f_select_totalrecord(v_userpage)
    # 封装成字典
    v_dict={'user_data':v_userpage,'info': 'success'}
    return render(request,'user_all.html',context=v_dict)

# 将用户从数据库中删除
def f_deleteuser(request: HttpRequest):
    v_log.debug('f_deleteuser开始执行……')
    if request.method == 'GET':
        # 获取要删除用户的id
        v_get_dict = request.GET
        v_id_value = v_get_dict.get('id', None)
        # 通过dao完成删除用户数据操作（删除数据库里ID对应记录）
        UserDao.f_delete_user(int(v_id_value))
        # 返回显示所有用户信息的界面
        pass
    v_log.debug('f_deleteuser执行结束……')
    return redirect('/app01/getusers/1')


# 将用户添加到数据库中
def f_adduser(request):
    v_log.debug('f_adduser开始执行……')
    if request.method=='POST':
        # 获取请求数据
        v_post_dict=request.POST
        v_user_name=v_post_dict.get('user_name',None)
        v_user_sex=v_post_dict.get('user_sex',None)
        v_user_height=v_post_dict.get('user_height',None)
        v_tel=v_post_dict.get('tel',None)
        if v_user_sex=='nan':
            v_user_sex='男'
        elif v_user_sex=='nv':
            v_user_sex='女'
            pass
        # 封装到User对象里
        v_user=User(None,v_user_name,v_user_sex,v_user_height,v_tel)
        # 通过调用dao里的方法将User对象插入到数据库
        UserDao.f_insert_user(v_user)
        # UserDao.f_select_user(v_user)
        # 返回到显示所有用户信息的界面
        pass
    v_log.debug('f_adduser执行结束……')
    return redirect('/app01/getusers/1')


# 显示添加用户界面
def f_adduserpage(request):
    v_log.debug('f_adduserpage开始执行……')
    v_log.debug('f_adduserpage执行结束……')
    return render(request,'user_add.html')

# 显示用户更新界面
def f_updateuserpage(request):
    v_log.debug('f_updateuserpage开始执行……')
    if request.method=='GET':
        # 获取传递过来的id数据
        v_get_dict=request.GET
        v_id_string=v_get_dict.get('id',None)
        # 通过dao里面打方法获取该条记录的其他字段
        v_user=UserDao.f_select_user_id(int(v_id_string))
        # 把获取到的数据保存到字典里面
        v_data_dict={'user':v_user}
    v_log.debug('f_updateuserpage执行结束……')
    return render(request,'user_update.html',context=v_data_dict)
# 把数据更新到数据库里面
def f_updateuser(request):
    v_log.debug('f_updateuser开始执行……')
    # 获取表单提交过来的数据
    v_post_dict=request.POST
    v_user_id_string=v_post_dict.get('user_id',None)
    v_user_name = v_post_dict.get('user_name', None)
    v_user_sex = v_post_dict.get('user_sex', None)
    v_user_height = v_post_dict.get('user_height', None)
    v_tel = v_post_dict.get('tel', None)
    if v_user_sex == 'nan':
        v_user_sex = '男'
    elif v_user_sex == 'nv':
        v_user_sex = '女'
        pass
    # 封装到User对象里
    v_user=User(int(v_user_id_string),v_user_name,v_user_sex,v_user_height,v_tel)
    # 通过调用dao里面的方法吧数据更新到数据库里
    UserDao.f_update_user(v_user)
    # 跳会显示所有用户信息的截面
    v_log.debug('f_updateuser执行结束……')
    return redirect('/app01/getusers/')